from object.lnitial.lnitial_page import LnitialObject
from common.unit import AndroidUI
from object.lnitial.fiest_use import FirstUseObject
import time


#    #com.bluephone/com.bluecart.activity.SplashActivity

# 首页元素点击
class LnitialTest:
    def __init__(self):
        self.driver = AndroidUI.get_webdriver()
        self.lnitial = LnitialObject()
        self.use = FirstUseObject()

    # 点击首次使用
    def first_use(self):
        self.lnitial.first_use_button().click()
        try:
            self.driver.find_element_by_android_uiautomator('new UiSelector().text("点击拉取机型配置信息")')
            # self.driver.find_element_by_text("点击拉取机型配置信息")
            print("测试点击首次使用成功")
            AndroidUI().write_result("点击首次使用测试", "成功")
        except:
            print("测试点击首次使用失败")
            AndroidUI.capture()
            AndroidUI().write_result("点击首次使用", "失败")
            # self.driver.quit()

    # 返回首页
    def back_lnitial(self):
        self.use.back_button().click()
        try:
            self.driver.find_element_by_android_uiautomator('new UiSelector().text("欢迎使用智慧医废闭环监管系统")')
            print("返回初始页成功")
            AndroidUI().write_result("返回初始页测试", "成功")
        except:
            print("测试返回初始页失败")
            AndroidUI.capture()
            AndroidUI().write_result("返回初始页", "失败")
            # self.driver.quit()

    # 版本更新按钮
    # 暂时不弄
    # def update(self):
    #     self.lnitial.update_button().click()

    # 用户使用按钮
    def useruse(self):
        self.lnitial.useruse_button().click()
        try:
            time.sleep(2)
            self.driver.find_element_by_android_uiautomator('new UiSelector().text("数据")')
            # self.driver.find_element_by_text("数据")
            print("点击用户使用成功")
            AndroidUI().write_result("点击用户使用测试", "成功")
            # 返回首页
            # self.back_lnitial()
        except:
            print("点击用户使用失败")
            AndroidUI.capture()
            AndroidUI().write_result("点击用户使用", "失败")
            # self.driver.quit()

    # 系统设置输入密码
    # def system_password(self,password):
    #     self.lnitial.system_button().click()
    #     try:
    #         self.driver.find_element_by_text("请输入管理员密码")
    #         self.driver.find_element_by_id("android:id/input").send_keys(password)
    #         self.driver.find_element_by_text("确定").click()
    #         try:
    #             self.lnitial.useruse_button()
    #             print("输入密码操作没问题")
    #             self.AndroidUI().write_result("输入密码操作测试", "成功")
    #         except:
    #             print("输入密码操作正常")
    #             self.  AndroidUI.capture()
    #             self.AndroidUI().write_result("输入密码操作", "失败")
    #             self.driver.stop()
    #             self.driver.start_app('com.bluephone', 'com.bluecart.activity.SplashActivit')
    #     except:
    #         print("输入密码页面没有正常打开")
    #         self.  AndroidUI.capture()
    #         self.AndroidUI().write_result("输入密码页面", "失败")
    #         self.driver.stop()
    #         self.driver.start_app('com.bluephone', 'com.bluecart.activity.SplashActivit')

    def system_password(self, password):
        self.lnitial.system_button().click()

        # if self.driver.find_element_by_text("请输入管理员密码"):
        if self.driver.find_element_by_android_uiautomator('new UiSelector().text("请输入管理员密码")'):
            self.driver.find_element_by_id("android:id/input").send_keys(password)
            self.driver.find_element_by_android_uiautomator('new UiSelector().text("确定")').click()

            if self.lnitial.useruse_button():
                print("输入密码操作没问题")
                AndroidUI().write_result("输入密码操作测试", "成功")
            else:
                print("输入密码操作正常")
                AndroidUI.capture()
                AndroidUI().write_result("输入密码操作", "失败")
                # self.driver.quit()
        else:
            print("输入密码页面没有正常打开")
            AndroidUI.capture()
            AndroidUI().write_result("输入密码页面", "失败")
            # self.driver.quit()

    # 输入错误的密码
    def input_false_password(self):
        self.system_password('301235')
        self.lnitial.system_button().click()
        try:
            self.driver.find_element_by_android_uiautomator('new UiSelector().text("请输入管理员密码")')
            print("输入错误密码，返回结果没问题")
            AndroidUI().write_result("输入错误密码，返回结果", "成功")
            self.driver.find_element_by_android_uiautomator('new UiSelector().text("确定")').click()
        except:
            print("输入错误密码，返回的结果不正确")
            AndroidUI.capture()
            AndroidUI().write_result("输入错误密码，返回结果", "失败")
            # self.driver.quit()

    # 输入正确的密码
    def input_true_password(self):
        self.system_password('330624')
        self.lnitial.system_button().click()
        try:
            self.driver.find_element_by_id('com.bluephone:id/clear_zero')
            print("输入正确密码，返回结果没问题")
            AndroidUI().write_result("输入正确密码，返回结果", "成功")
        except:
            print("输入正确密码，返回的结果不正确")
            AndroidUI.capture()
            AndroidUI().write_result("输入正确密码，返回结果", "失败")
            # self.driver.quit()

    # 扫码按钮
    def scan_button(self):
        element = self.driver.find_element_by_id("com.bluephone:id/scan_iv")
        return element

    def test_quit(self):
        self.driver.find_element_by_text('我的').click()
        self.driver.find_element_by_text('设置').click()
        self.driver.find_element_by_text("退出登录").click()
        self.driver.find_element_by_id("com.sofmit.gzsk:id/toolbar_back").click()
        # self.driver.find_element_by_xpath('//*[@resource-id="com.sofmit.gzsk:id/editText1"]').send_keys(17706852578)
        # self.driver.find_element_by_xpath('//*[@resource-id="com.sofmit.gzsk:id/editText2"]').send_keys(83190042)
        if self.driver.find_element_by_text('未登录'):
            print("测试注销成功")
            AndroidUI().write_result("注销测试", "成功")
        else:
            print("测试注销失败")
            AndroidUI().write_result("注销测试", "失败")
            # self.driver.quit()

    def start_test(self):
        self.first_use()
        self.back_lnitial()
        self.useruse()
        self.back_lnitial()
        self.input_false_password()
        self.input_true_password()
        self.back_lnitial()


if __name__ == '__main__':
    at = LnitialTest()
    # au=AndroidUI()
    # AndroidUI().write_result(2,3)
    # AndroidUI.capture()
    # at.first_use()
    # at.back_lnitial()
    # at.useruse()
    # at.input_false_password()
    # at.input_true_password()
    at.start_test()
